Agent Configuration

NetDiagnostics configuration settings can be performed from the Agent Config window. Follow the below-mentioned steps to get started with the agent configurations.

  • Go to the Configuration menu item and click Agent Configuration as shown in Figure 35.
Figure 35: Agent Configuration
  • The Agent Configuration window is displayed.
Figure 36:Agent Config Window

Layout of Agent Config UI

The ND Configuration window is divided into two panes – left pane and right pane. Left pane consists of a menu from which, on clicking it, the corresponding details are displayed on the right pane. From the right pane, you can configure the application, profile, and instrumentation profile. You can also view the complete list or of five topologies from the Topology list section. Application list, profile list, and topology list is displayed on the right pane by default. This can also be achieved by clicking the home menu on the left pane.

Left Pane/Menu

  • Home
  • Application
  • Profile
  • Instrumentation Profile Maker
  • Instrumentation Finder
  • NDE Cluster Configuration
  • User Configured Settings
  • Download Agent Logs
  • Audit log

Right Pane

  • Application list
  • Profile list
  • Topology list

Run Time Changes

There is a toggle button to make the changes online/offline. To make the changes online, enable the toggle button. All the changes are executed online.

Figure 37: Run Time Window

On disabling the toggle button, all changes are saved offline and are activated after enabling the toggle button.

Note: When a test is running and you make any changes in a profile, run time changes are applied for all the connected instances in the application. The change in the profile is denoted by a green dot against the profile name.

Profile

Overview

Profiles are a set of configuration files that help ND Collector to identify the agent specific configuration (such as Java, .NET, NodeJS, PHP, and Python). You can apply Profiles at any level (such as tier, server, or instance). The application displays the created profiles in the Profile List section.

Figure 38: Profile List Window

You can create a new profile, import a profile, export a profile, and delete a profile. The detailed description of these actions is provided in the subsequent sections.

Create a Profile

To create a profile, follow the below-mentioned steps:

  1. Click the Configure button at the top-right corner of the Profile section or the Profile menu on the left pane.
  2. The Profile details are displayed in a new window as shown in Figure 41.
Figure 39: Profile Creation

3. Click the Add Profile button to create a new profile . The Add Profile window is displayed as shown in Figure 42.

Figure 40: Add Profile Window

4. Specify the profile name and its description.

5. Select an agent from the drop-down list.

6. To copy an existing profile, click the Copy Profile drop-down list and select the profile to be copied.

7. Click the Save button to finalize the profile creation process. The profile is created and displayed in the profiles list as shown in Figure 43.

Figure 43: Profile List Window

Export a Profile

You can export a profile or multiple profiles to a predefined configuration folder. The selected profile(s) are exported as a zip folder containing all the selected profile-related files. To export profile(s), select the profile(s) from the list and click the Export Profile button as shown in Figure 44. After successful exporting, a confirmation message is displayed.

Figure 42: Export Profile List Window

Import a File

To import a profile from the file system, click the Import  button. The File Manager window is displayed from where you can browse the file and upload to the profile list as shown in Figure 45. You can also create a directory by using the  button. You can search for a profile too.

Figure 43: File Manager Window

Following are the fields in file manager:

  • Current Directory: Path where the file is located.
  • Name: Name of the file/folder.
  • Date Modified: Time and date when the file name was modified.
  • Type: Shows the type of directory used.
  • Size: Shows the size of the file.

Delete a Profile

To delete profile(s), from the list, select the profile(s) from the list and click the Delete  button. The profile is deleted from the list.

Setting Profiles

Once the profile is created/imported, you can perform configuration on the profile. For this, click the profile name from the list. The profile configuration window is displayed as shown in Figure 46.

Figure 44: Profile Configuration Window

You can perform the following settings on your profile. The detailed description of each setting is provided in the subsequent sections.

  • General Settings
  • Instrumentation Settings
  • Advance Settings
  • Product Integration Settings

General Settings

In this section, you can perform the general settings for the profile, such as flowpath capturing, hotspot capturing, capture exception, flowpath header capturing, choose instrumentation profile, and capture percentile. To perform general settings, General Settings link and navigate to the particular category in this section.

Figure 45: General Setting Window

There are the following sub-sections under general settings:

FlowPath Capturing

Here, you can enable/disable flowpath capturing by agent with default settings. It is enabled by default. For more settings, click the Flowpath link. A window is displayed with various tabs, such as Flowpath, Hotspot, Exception capturing, Header, custom data, and Instrumentation Profiles. Go to the Flowpath tab as shown in Figure 48.

Figure 46: Flowpath Window

You can perform the following settings under the FlowPath Capturing Settings window.

  • Flowpath Instrumentation (%): The specified percentage of flowpath(s) are captured for all business transactions monitored by application agents. Slow, very slow, and error flow paths are always captured.
  • Merge Thread Callouts: For JBOSS server, when you select this check box, it will merge the thread callouts (child flowpath) in the main flowpath.
  • HTTP Header Name for CorrelationID: HTTP header name used by application to pass correlationID across topology.
  • Capture Method Thread ID: For JBOSS server, when you select this check box, ‘Thread ID’ column is displayed in tranlling Tree.
  • Capture call stacks of all offending business transaction(s): Capture method calling stack of slow/very slow/error business transaction(s) for all flowpath(s).
  • CPU Profiling: Capture CPU time consumed by
    • Business transaction(s) OR
    • Business transaction(s) and method(s)
  • Capture Time Breakdown: Capture wait and sync time by
    • Business transaction(s) OR
    • Business transaction(s) and method(s)
  • Enable GC Notification(s) having threshold: Enable the checkbox to have GC notification having threshold time in ms.
  • Optimize Flowpath Data Size: Upon selecting this check box, you can optimize flowpath data size by specifying filters for methods’ response time. For this, you first need to select the Method Response time filter Then, you can specify filter criteria for normal/slow/very slow method response time.
  • Capture Flowpath Method Stack Trace: To capture flowpath method stack-trace, select this check box, specify threshold duration of method, and stack trace depth.
HotSpot Capturing

Here, you can enable/disable capturing of thread hotspots using BCI auto sensor. For settings, click the Hotspot tab. The Settings window is displayed.

Figure 47: Hotspot Window

This window is divided into two sections – Hotspot Detection settings and Filter settings. Here, we are describing the details that can be configured for each section.

Hotspot Detection Settings

There are the following sections under this:

Figure 51: Hotspot Detection Window
  • Thread Sampling Interval: The provided value defines the frequency interval for collecting thread samples.
  • Consecutive matching samples to mark as Hotspot: Number of consecutive thread samples having same stack trace.
  • Compare top <n> stack frames of same thread: Compare top <n> stack frames of same thread in consecutive matching samples.
  • Enable Method Hotspot sensor: Upon selecting this check box, method hotspot sensor is enabled in the hotspot detection.
  • Maximum Stack depth difference in consecutive matching samples: To consider a method as Hotspot, search stuck methods in consecutive thread samples whose stack depth difference is not more than the specified value. The default value is 20.
  • Transaction based HotSpot(s): Upon selecting this check box, you can capture transaction-based hotspot(s).
  • Max threads for Transaction hotspot(s): After selecting the ‘Transaction based HotSpot(s)’ check box, specify the size of threads for the transaction-based hotspot(s). The default size is 10000.

Filter Settings

There are following sections under this:

Figure 51: Filter Setting Window
  • Minimum Hotspot Thread Depth: The provided value defines the minimum depth of thread stack trace to be captured for hotspot.
  • Thread names to be included in Hotspot: Consider only provided thread names for hotspot detection from all threads of application.
  • Thread names to be excluded in Hotspot: Do not consider provided thread names for hotspot detection.

You can reset the values using the following buttons:

  • Reset to Default: It allows you to set the configuration of that particular screen with its Default settings.
  • Undo All: It allows you to undo all the configurations.
  • Save: It allows you to save the configuration.
Exception Capturing (Java)

Exceptions are events that occur during the execution of programs that disrupt the normal flow of instructions (e.g., divide by zero, array access out of bound, etc.). In Java, an exception is an object that wraps an error event that occurred within a method and contains Information about the error including its type.

Figure 50: Exception Capturing Window (Java)

Here, you can perform configuration for exception capturing and can apply filters to that. For settings, click the Exception tab. Three sections are displayed – Exception, Advanced, and Filter.

Exception

There are the following configurations within this section:

Figure 51: Exception Configuration Window

When enabled, exceptions are captured. Within this, you can select more options as mentioned below:

  • To capture exceptions logged using API (such as util. logging, log4j, ATG logger), select the subsequent check box.
  • Select the check box to capture all the handled exceptions using try-catch instrumentation. Provide the exceptions that need to be excluded or included in the respective text boxes.
  • Specify <n> frames of exception stack trace to be captured.
  • You can capture exceptions from un-instrumented flowpath(s) too.

Advanced

Here, you can specify the criteria to capture stack trace. There are multiple options and you can select any one from them.

Figure 52: Advanced Window
  • Enable Detailed Exception Capturing:

Exception Details

  • Class Variable: Enable the check box for class variable.
  • Method Arguments: Enable the check box for method arguments.
  • Local Variable: Enable the check box for local variable.
  • Thread Local Variable: Enable check box for thread local variable.
  • Exception Capture Limit: Shows the number of exceptions per minute.
  • Method Call Stack Depth: Shows the number of call stack depth.
  • Ignore Exception(s): Mention the exceptions to be ignored.
  • Capture Logs (Last N Logs)
    • of Log Lines to Capture: Shows the number of log lines captured.
    • Variable size: Variable size in kb.
HTTP Data

HTTP headers allow the client and the server to pass additional information with the request or response. Here, you can enable/disable the capturing of HTTP request and response headers. For more settings, click the HTTP Data tab. The Flowpath Header Settings window is displayed.

Figure 53: HTTP Flowpath Header Setting Window
  • Capture HTTP Request Header: When enabled, HTTP request headers are captured. You can capture ‘all’ or ‘specified’ headers. In the case of ‘specified’, select request header(s) from the drop-down list. You can limit the captured header values up to specified characters too.
  • Capture HTTP Response Header: When enabled, HTTP response headers are captured. You can capture ‘all’ or ‘specified’ headers. In the case of ‘specified’, select response header(s) from the drop-down list. You can limit the captured header values up to specified characters too.
  • HTTP body capture: When enabled, the HTTP body is captured with size (in bytes).
Custom Data

In this section, you can capture custom data from method, session attribute, HTTP request header, and HTTP response header.

Figure 54: Custom Data Window

Method

Here, you can capture custom data from the method. This section displays method-based custom header rules, with details such as fully qualified method name, return type, and argument type. You can perform the following operations:

  1. Add method rule to capture custom headers:
Figure 55: Add Method Rule Window

2. Provide fully qualified method name: This denotes the complete name including package, class, and method.

3.  Enable/Disable Custom Header from Method Return value(s): When enabled, select the method return value rule(s) from the list or add a new one by clicking the button. 

Figure 56: Capture Custom Header Window

This table displays the following columns:

  • Header Name: Name of the header.
  • Data Type: Data type, such as String, Integer, and Decimal.
  • Operation: It contains operations, such as capture, invocation, equals, not equals, contains, starts with etc.
  • Header Value: Value of the header.
  • Show in Method Calling Tree: When enabled, the custom is displayed in the method calling tree.

For adding a new rule, provide a header name within which the captured data will be dumped, select the data type, select operations which are defined for different type of return values (string or object type, numeric type, byte or character type, and Boolean type), and specify the header value. You can also enable capturing of custom header or display custom header in method calling tree. Upon selecting the later one, a custom header is displayed in the method calling tree and corresponding entry is displayed in the table.

  1. Enable/Disable Custom Header from Method Argument(s): When enabled, select the method argument rule(s) from the list or add a new one by clicking the button.
Figure 57: Capture Custom Header Window from method argument

This table displays following columns:

  • Header Name: Name of the header.
  • Argument Index: Argument number.
  • Data Type: Data type, such as String, Integer, and Decimal.
  • Operation: It contains operations, such as capture, invocation, equals, not equals, contains, starts with etc.
  • Header Value: Value of the header.
  • Show in Method Calling Tree: When enabled, the custom is displayed in the method calling tree.

For adding a new rule, provide header name within which the captured data will be dumped, argument index targeted for provided condition, select the data type, select operation which are defined for a different type of return values (string or object type, numeric type, byte or character type, and boolean type), and specify the header value. You can also enable capturing of custom header or display custom header in method calling tree.

Note: Apart from adding, you can also edit or delete a method rule.

Session Attribute

Here, you can capture custom data from session attributes. There are three options as shown in Figure 60:

Figure 58: Session Attribute Window
  • None: No data is captured.
  • All: Data from all session attributes are captured.
  • Extract value: Upon selecting this, a list of session attribute based custom header rule(s) is displayed with following details as shown in Figure 59:
Figure 59: Add Session Attribute Rule Window
  • Attribute name: Name of the attribute.
  • Capture mode: Capture mode is either complete or extracted.
  • Header names: This is the name of the header specified when you select the “extracted” mode.
    You can select the rule from the list or can add a new one. For adding a new session attribute rule, provide attribute name and select either:
  • Complete Value: On selecting the Complete Value check box, it captures the complete value of the given response header.
  • Extract Value: On selecting the Extract Value check box, it captures the given response header based on left bound and right bound.
Figure 60: Add Extraction Rule Window

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with the following details as shown in Figure 60:

  • Header name: Header to be captured.
  • Data type: Data type can be one of the following: String/Integer/Decimal.
  • Left bound: A part of the header value string.
  • Right bound: A part of the header value string. You can select an extraction rule from the list or can add a new one. For adding a new rule, provide header name, data type, left bound, and right bound.

HTTP Request Header

Here, you can capture custom data from the request header. There are three options as shown in Figure 61

Figure 61: HTTP Request Header Window
  • None: No data is captured.
  • All: Data from all request headers are captured.
  • Extract value: Upon selecting this, a list of HTTP request header based custom header rule(s) is displayed with following details:
Figure 62: Add HTTP Request Header Window
  • Request Header name
  • Capture mode
  • Header names

You can select the rule from the list or can add a new one. For adding a new HTTP request header based on custom header rule(s), provide the request header name and select either:

  • Complete Value
  • Extract Value

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with the following details as shown in Figure 63:

Figure 63: Extraction Rule List Window
  • Custom Header name
  • Data type
  • Left bound
  • Right bound

You can select an extraction rule from the list or can add a new one. For adding a new rule, provide custom header name, data type, left bound, and right bound.

HTTP Response Header

Here, you can capture custom data from the response header. There are three options as shown in Figure 64:

Figure 64: HTTP Response Header Window
  • None: No data is captured.
  • All: Data from all response headers are captured.

Extract value: Upon selecting this, a list of HTTP response header based custom header rule(s) is displayed with following details as shown in Figure 65: 

Figure 67: Add HTTP Response Header Rule
  • Attribute name
  • Capture mode
  • Header names

You can select the rule from the list or can add a new one. For adding a new HTTP response header based on custom header rule(s), provide the response header name and select either:

  • Complete Value
  • Extract Value

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with the following details as shown in Figure 66:

Figure 66: Extraction Rule List Window
  • Custom Header name
  • Data type
  • Left bound
  • Right bound

You can select an extraction rule from the list or can add a new one. For adding a new rule, provide a custom header name, data type, left bound, and right bound.

Instrumentation Profiles

An Instrumentation profile is an XML file that contains package, class, and method nodes that are used for instrumentation from the BCI agent. You can select the instrumentation profile from the drop-down list to monitor application methods.

Select the profile from the drop-down list and click the Save button.

Figure 67: Instrumentation Profile Window

To remove a profile, clear the selection from the dropdown list.

You can also import an instrumentation file from the NDE box or from a local machine using the Browse button.

Figure 68: File Manager Window
Percentile

Here, you can configure the percentile settings. To do the settings, click the Percentile tab and follow the below steps  as shown in Figure 69:

Figure 69: Percentile Window
  • Capture BT Percentile: Selecting this check box enables you to capture the percentile metrics for a Business Transaction (BT).
  • Aggregation Duration: It is the frequency at which the percentile data is aggregated. The available options are: 1 minute, 2 minutes, 5 minutes, 10 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 8 hours, 12 hours, 24 hours.
  • Advance Setting: The advanced settings to capture BT percentile are as shown in Figure 70:
  • Compress via serialization: If selected, the aggregated percentile data samples are transmitted in a compressed format over the network.
  • T-Digest Compression: Delta and K are the tuning parameters of the T-Digest algorithm. The default values of both Delta and K parameters are 100. Both these parameters should have a value greater than 1.
Figure 70: Advance Setting Window
  • Capture IP Percentile: Selecting this check box enables you to capture the percentile metrics for an Integration Point (IP).
  • Aggregation Duration: It is the frequency at which the percentile data is aggregated. The available options are: 1 minute, 2 minutes, 5 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 8 hours, 12 hours, 24 hours.
  • Advance Setting: The advanced settings to capture BT percentile are as shown in Figure 70:
  • Compress via serialization: If selected, the aggregated percentile data samples are transmitted in a compressed format over the network.
  • T-Digest Compression: Delta and K are the tuning parameters of the T-Digest algorithm. The default values of both Delta and K parameters are 100. Both these parameters should have a value greater than 1.
  • Store Percentile data at Instance level: Selecting this check box enables aggregation of percentile data for higher ‘View by’ interval(s) in the dashboard. Enabling this option may cause high disk usage.
Others
Figure 71: Others

In Others, you have to select the required Logger type from the drop down as shown in below figure.

Figure 72: Logger Type
  • SLF4J
  • LOG4J
  • LOG4J2
  • LOGBACK
  • Other

Instrumentation Settings

In this section, you can configure instrumentation settings, such as service entry point, integration point detection, transaction configuration, instrument monitors, error detection, and asynchronous transaction. To perform instrumentation settings, click the Instrumentation link and navigate to the particular section.

Figure 73: Instrumentation Setting Window

There are the following subsections within the Instrumentation Settings section:

  • Service Entry Point
  • Integration Point Detection
  • Transaction Configuration
  • Instrument Monitors
  • Error Detection
  • Asynchronous Transaction
Service Entry Point

A service entry point is set on an entry. An entry can be a program or service program (where a service entry point is set on all procedures in the program).

Figure 74: Service Entry Point Window

This section displays a list of service entry points with the following details as shown in Figure 74:

  • Service Entry Type: Type of the service entry, such as HttpServletService, EntryForWebLogicJSP, JMSCall and so on.
  • Service Entry Name: Name of the service entry, it should be based on the service entry type.
  • Enable/Disable Instrumentation: This shows whether instrumentation is enabled or disabled. You can also change the status using the toggle button.
  • Description: This is the description of the service entry for better understanding.
  • Category: This denotes whether it is a predefined service entry point or not.

Note: You can add/edit/delete a service point. For adding a new one, provide service entry type (which can be a service/program/page etc.), service entry name, fully qualified method name, enable/disable the instrumentation for the service entry point, and its description.

You can add a new service entry point by clicking the button. The Add Service Entry Point window is displayed as shown in Figure 75.

Figure 75:Add Service Entry Point Window

Specify the entry point type, entry point name, and status (enabled/disabled). Specify the fully qualified method name and its description, and then click the Save button. The service entry point details are added to the list.

Note: Spring Boot Job Entry Points are also supported, which are useful when a client/application is using the Spring Boot Job framework in some instances. Select the check box for Instrumentation for Generic Service Entry Type, with Service Entry Name – Abstract Job, Single Job.

Integration Point

The Integration point is an endpoint of the tier hierarchy that stores/provides information on the requests sent to the server, such as DB calls, coherence calls, and so on. There would not be any outgoing calls from the integration point. It only stores the information and serves the request that is required by the server.  This section is divided into the following sub-sections i.e., Detection by Classes, Detection by Interfaces, and Settings.

Figure 76: Integration Point Window

Detection by Classes

Integration Point displays a list of integration point detections containing the type of detections along with its description as shown in Figure 77.

Figure 77: Detection by Classes Window
  • View Details-To view the integration point detection configuration, click the link, such as HTTP, WS, JDBC, and so on. The details are displayed in a new window as shown in Figure 78:
Figure 78: Manage Web Services Integration Point Window

You can apply the naming rules by selecting the check box, such as Host, Port, URL, and Query. You can also enable/disable the integration points by using the toggle button. After making changes, click the Save button.

Note: The Integration Point Naming Rule(s) may vary for different Integration Point Types. For example, the Integration Point Naming Rules for HTTP are – Host, Port, Query String, and Query. Whereas, the Integration Point Naming Rules for Spanner are – ProjectID, InstanceID, and DatabaseID.

  • Add Integration Point Detection-You can add an integration point detection by using the A window is displayed to add a new integration point detection as shown in Figure 79.
Figure 79: Integration Point Detection Window

Specify the integration point type, its name, module, and status (enabled/disabled). Enter the Fully Qualified Method (FQM) name along with its description, and then click the Save button. The integration point detection is added to the list.

Note: For Java and .NET agents, you can select the ‘Custom’ option from the ‘Integration Point Type’ drop-down. After selecting that, you must turn on the toggle button to enable this, and then click the Save button.

Detection by Interfaces

In Interface Instrumentation, all loaded interfaces in Java Virtual Machine (JVM), which implement the given class, will be instrumented. To instrument at an interface level along with the instrumentation profile, the following requirement is needed. A generic framework for Interface API as an entry point, which can be used to detect HTTP CallOut, DB CallOut, or as a service entry point.

  1. Click Detection by Interfaces. Click on Logger under Integration Point Type.
Figure 80: Detection By Interface Window
  1. Select Logger from the dropdown, and then enable the required entry point.
Figure 81: Manage Logger Window
  1. Click Save at the bottom of the logger screen, and further click Save on the top right of the main screen to save the changes.

Settings

Here, you can configure the integration points. This section is used to capture request parameters where you have the provision to skip a certain number of characters from the URL and can set the maximum character limit in the URL.

Figure 82: Detection By Classes Window

There are the following configurations within this section:

  • Capture URL: When enabled, the system captures the endpoint URL. All other sections become active after enabling this.
  • Capture Endpoint URL: When enabled, URL capturing is activated.
  • Capture request parameters: When enabled, the system captures the request parameters.
  • Extract URL range: It define the range of characters in the URL. The default range is 0 to 50.
  • Capture cassandra query: When enabled, the system captures cassandra queries.
  • Capture Thread subclasses: When enabled, the transformation of thread subclasses is activated.
  • Capture Network Delay: When enabled, the system captures the network delay.

For NodeJS profile, only ‘Capture Network Delay’ configuration is present.

Business Transaction

Business transactions are an integral part of every flowpath. Each flowpath is identified as a business transaction. Business transaction provides a logical grouping of all incoming requests. To identify any business transaction, several types of rules are available.

Figure 83: Business Transaction Window

There are two sections:

  • Global Configuration
    • Configure Rules
    • Tags
  • Pattern Configuration

Global Configuration

These rules are used to create business transaction names using URI and dynamic request properties (HTTP methods, query parameters, and others) for all agent types.

Figure 84: Global Configuration Window

Detailing of further configurations within this:

  • URI used in Transaction Name: This could be complete or custom defined.
  • Complete: In this case, all the URIs are captured.
  • Custom Defined: In this case, you can specify whether to use first <n> segments, last <n> segments, or the specified segment number of URIs in business transactions. Enter the segment(s) of URI in valid format. In case of multiple segment numbers, separate them by comma. For example – 2,4,6.
  • Transaction Response Time Threshold Value: Specify the threshold value (in ms) of transaction’s response time for slow and very slow transactions.
  • Select Dynamic Request properties: When enabled, you can use either:
    • Query Parameter: When enabled, provide the request parameter value.
    • HTTP request method (GET/POST/PUT) in transaction names.
    • Specified HTTP Header: When enabled, provide the HTTP header name.
    • Segment Number: When enabled, provide the segment number.

Tags

Tags organize data coming from a large number of sources and/or to a large number of accounts. It identifies teams, roles, environments, or regions to know who’s responsible for what and also organizes and searches dashboards and workloads to Query and chart APM data. Tags are useful for organizing data at a high level to add more fine-grained detail, like capturing user names or other high-cardinality values.

Figure 85: Tags

You can also add a new tag by clicking the  button. The following page opens.

Figure 86: Add New Tag

Provide the details of the following fields:

  • Name: Enter the desired name of the tag.
  • Namespace: Select the required header name in this field.
  • Field: Enter the field name in the space provided.
  • You can also Edit( ) or Delete once you add the tags.

Pattern Configuration

The rules defined in this section provide patterns of URI and dynamic request properties (HTTP methods, query parameters, and others) to identify business transactions.

Figure 87: Pattern Configuration Window

A list of business transaction pattern is displayed with following details:

  • BT Name: Name of the business transaction.
  • Match Type: Match type could be either “exact match” or “starts with”.
  • URL: URL pattern to be captured.
  • BT Included: It is the business transaction included or excluded.
  • Slow Transaction Threshold (ms): Transaction response-time threshold value for slow transactions.
  • Very Slow Transaction Threshold (ms): Transaction response-time threshold value for very slow transactions.
  • Query HTTP Parameters Key: Denotes the request parameter key.
  • HTTP Method Type: Denotes the HTTP method type, such as GET, POST, PUT, DELETE etc.
  • HTTP Request Headers Key: Denotes the headers key for HTTP request.
  • BT Method: Denotes the BT method type.
  • BT Request Headers: Denotes the headers key for BT request.
  • BT Response Headers: Denotes the headers key for BT response.
  • BT HTTP Body: Denotes the HTTP body of the business transaction.
    Note: All the BT configured names are displayed at the same place in the BT Pattern table.

You can browse, add, edit, and delete a business transaction pattern. You can add a new one under the following four categories:

  • Configure Detection Rules
  • Split by Method Execution
  • Split by Request Headers
  • Split by Response Headers

Configure Detection Rules

For adding a new one, provide the following details:

  • Name of the business transaction.
  • URL Pattern to which validation needs to be performed.
  • Whether need to include these URL after successful validation.
  • Validation criteria for the given pattern – either ‘Starts with’ or ‘Exact match’.
  • Transaction response time threshold value for slow and very slow business transactions.
Figure 88: Configuration Detection Rule Window

You can also select Dynamic HTTP Request properties. Upon selecting the check box, provide the following details:

  • Request parameter key and its value: Enter the key and value of the parameter
  • Request header key and its value: Enter the header key and value.
  • HTTP method type: From the drop down select the HTTP method type -Get, Post, Put, Delete, Head, Trace, Connect and Options.

Configuring Global Threshold Value

In the BT Pattern screen, you can apply global values to new/existing Business Transactions by clicking the  button as shown in Figure 89.

Figure 89: Global Threshold Window

To do this, follow the below-mentioned steps:

  1. In the Pattern Configurations screen, click the Configure Global Threshold Value(s) button . This displays the Apply Global Threshold Values(s) The default threshold values for ‘slow’ and ‘very slow’ business transactions are ‘3000 ms’ and ‘5000 ms’ respectively.
Figure 90: Apply Global Threshold Value Window
  1. Provide the threshold values for slow and very slow business transactions that are to be applied globally and click the Save For example – ‘2500 ms’ for ‘slow’ business transactions and ‘4000 ms’ for ‘very slow’ business transactions.

Applying Global Threshold Values for New Business Transaction

  1. While adding a business transaction pattern, the default threshold values are applied for ‘slow’ and ‘very slow’ business transactions, which you can edit further based on the requirements.
Figure 91: Global Threshold Window
  1. To apply global threshold values for ‘slow’ and ‘very slow’ business transactions, enable the Apply Global Threshold Values(s) toggle button. This changes the threshold values for ‘slow’ and ‘very slow’ business transactions as per configurations. Click the Save button after providing all the required details.

Applying Global Threshold Values for Existing Business Transaction

  1. To apply global threshold values for existing business transaction, select the check box corresponding to the existing business transaction and click the Configure Global Threshold Value(s) icon .
Figure 92: Applying Threshold to existing Business Transaction
  1. Click the Save and Apply
  2. System prompts for a confirmation message, click Yes to proceed.

Split by Method Execution

Business transactions are created based on the method executions (FQM). This section displays method business transaction rules along with the following details:

Figure 93: Add Business Transaction Window
  • Fully qualified method name
  • BT name

You can add/edit/delete a method business transaction. On adding a new one (using the  button), provide the following details:

  • Fully qualified method name
  • Select a BT rule
Figure 94: Adding BT Method Rule Window

On enabling BT Rule Based on Return Type, a list of return value rules is displayed with the following details as shown in Figure 95:

Figure 95: BT Rule Window
  • BT Name
  • Match Criteria
  • Match Value

 Note: You can add /edit/delete return value rules. For adding a new one, provide BT name, match criteria, and match value.

On enabling BT Rule Based on Argument, select argument index from the drop-down list.

On enabling BT Rule Based on Method Invocation, type the BT name.

On enabling BT Rule Based on Method Return Invocation, a list of method invocation rules is displayed with following details as shown in Figure 96

Figure 96: BT Rule Based on Method Return Invocation
  • Default BT Name
  • Method Name

Note: You can add/edit/delete method invocation rules. For adding a new one, provide default BT name and method name.

Split by Request Headers

Business transaction(s) are created based on URL, parameter, methods, and headers. You can specify the headers. The application agent creates business transactions for the headers specified. This section provides configuration for Business Transaction based on Request Headers, for continuously monitoring these headers.

Figure 97: Add BT Request Header Window

This section displays a list of Request header rules with the following details:

  • Header Name
  • BT Name

You can add a new request header rule by providing the following details:

  • Header Name
  • BT Name
  • Operation
  • Pattern

Split by Response Headers

Figure 98: Add BT Response Header Window

This section displays a list of response header rules with the following details:

  • Header Name
  • BT Name

You can add a new response header rule by providing the following details:

  • Header Name: Enter the header name.
  • BT Name: Enter the BT name. The name should not start with special characters.
  • Operation: Select the operation from the drop down.
  • Pattern: Enter valid pattern. It should not contain white spaces.

Tags

Tags organize data coming from a large number of sources and/or to a large number of accounts. It identifies teams, roles, environments, or regions to know who’s responsible for what and also organizes and searches dashboards and workloads to Query and chart APM data. Tags are useful for organizing data at a high level to add more fine-grained detail, like capturing user names or other high-cardinality values.

Figure 99: Tags

You can also add a new tag by clicking the  button. The following page opens.

Figure 100: Add New Tag

Provide the details of the following fields:

  • Name: Enter the desired name of the tag.
  • Namespace: Select the required header name in this field.
  • Field: Enter the field name in the space provided.
  • You can also Edit( ) or Delete once you add the tags.
Instrument Monitors

This section is used for instrument monitors. You can instrument method monitors as well as HTTP Stats monitors.

Method Monitors

It is used to capture data for a particular method. Here, you can instrument a method monitor.

A list of method monitors is displayed for instrumentation as shown in Figure 101.  

Figure 101: Method Monitor Window

In this section, you can browse a method monitor file, add a new method to monitor, edit an existing method monitor, or delete an existing method monitor. For adding a new one, click the  button and provide the following details:

  • Fully qualified method name: Enter a valid method name. Method name can include package, class, and method name, separated by dot (.). Method names cannot include whitespaces.
  • Display name in monitor: User specified alias name for method monitor.
  • Description: Description of the method to monitor.
Figure 102: Add Method to Monitor Window

Edit Method Monitor: User can Edit any of the method monitor by selecting a specific entry from the table.

Delete Method Monitor: User can delete one or more entries by selecting the entries from table.

HTTP Stats Monitors

Condition monitoring is used to provide conditions based on which a particular HTTP request or response needs to be scrutinized and headers to be extracted such that they can be shown in DDR reports against flowpath instance related reports. Here, you can instrument HTTP stats monitors. A list of HTTP stats monitors is displayed as shown in Figure 103

Figure 103: HTTP Stats Monitor Window

This section displays a list of HTTP stats with the following details:

  • HTTP stat name: Name of the HTTP stat.
  • Rule: It is a combination of “header type”, “header name”, and “match with” value.
  • Forcefully Dump Flowpath: Here, status could be “Enabled”/“Disabled”.
  • Description: This denotes the description of the HTTP stat.

To add an HTTP stats, monitor, click the  button. A window to add HTTP stats condition is displayed as shown in Figure 104

Figure 104: HTTP Stats Condition Window

Here, you can add/edit/delete an HTTP stats condition. To add a new one, provide the following details:

  • HTTP Stat Name
  • Enable/Disable forcefully dump flowpath
  • Header Type (request/response/cookie)
  • Header Name
  • Data Type (String/numeric/others)
  • Operation
  • Match with
  • Description

Exception Monitor (Java, NodeJS, and .NET)

Exception monitors are used to monitor exceptions that have occurred in the system while traversing a request. You can configure exception monitors by using the Exception Monitors section under the Instrument Monitors tab.

Figure 105: Exception Monitor Window

Here, exception details are displayed, such as exception name, display name, and description. To add a new exception monitor, click the Add button . A new window is displayed to add an exception monitor as shown in Figure 106.

Figure 106: Add Exception to Monitor Window
  • Add Exception Monitor: For adding a new one, provide the following details:

(i) Exception Name: Enter a valid exception name

(ii) Display Name: User specified alias name for exception monitor.

(iii) Description: Description of the exception to monitor.

  • Edit Exception Monitor: User can Edit any of the exception monitor by selecting the specific entry from the table.
  • Delete Exception Monitor: User can delete one or more entries by selecting the entries from table.

JVM Thread CPU Monitor

This section is used to configure JVM monitors. To do this, go to the JVM Thread CPU Monitor section under the Instrument Monitors tab as shown in Figure 107.

Figure 107: JVM Thread CPU Monitor Window

To enable JVM thread CPU monitor, select the check box and specify a percentage. The thread is not reported if the CPU utilization is less than or equal to the provided percentage. To reset/save the details, click the Reset/Save button accordingly.

Error Detection

This section is used to configure rules to detect errors. A list of error detection rules is displayed as shown in Figure 108.

Figure 108: Error Detection Window

To add a new rule for error detection, click the  button. A window to add error detection rules is displayed as shown in Figure 109.

Figure 109: Add Error Detection Rule Window

For adding a new rule, provide the following details:

  • Rule name: Enter a valid rule name.
  • Status Code: Describe the starting and ending range of HTTPs Error status code.
  • Enable:  If this field is enable, Business transaction with status code is set.
  • Description: It describes about error.

Edit Exception Monitor: User can Edit any of the Error Detection Rule by selecting the specific entry from the table.

Delete Exception Monitor: User can delete one or more entries by selecting the entries from table.

Click the Save button. The rule is added to the list. Once added, you can edit or delete the rule according to the requirements.

Asynchronous Transaction

The response time for the business transaction sometimes doesn’t reflect the entire logical business flow for the transaction. An example is a travel application that returns a web page to a user while it assembles flight quotes from external sources in the background. In this case and many such scenarios, response time of the transaction generally will be much shorter than actual end to end time taken by transaction.

So, response time of a business transaction (or time taken by entry point method) may not best represent the logical end of a business transaction. For example, consider an application in which an entry point method in a request handler spawns multiple threads, including one to serve as the final response handler. The request handler then returns a preliminary response to the client. By default, this stops the clock for purposes of measuring the response time for that business transaction. Meanwhile the spawned threads continue to execute until completion, at which point the response handler generates the final response to the client.

In this case, the initial response time is much shorter than the full logical transaction execution time.

To configure Asynchronous Transaction rules, follow the below-mentioned steps:

  1. Navigate to the Asynchronous Transaction
  2. To enable the asynchronous rules, select the Enable Asynchronous Transaction Rules check box.
  3. To enable the asynchronous rule for Jetty, Tomcat, and Weblogic containers, select the toggle buttons accordingly.
  4. Click the Save button to save the settings.
Figure 110: Asynchronous Transaction Window

Advance Settings

In this section, you can perform some advanced settings, such as debug level capturing, put the delay in method, backend monitor, and handling exception generation in the method.

To perform this, click the Advanced Settings link. The Advanced Settings section is displayed as shown in Figure 111.

Figure 111: Advance Settings Window

There are the following subsections under the Advanced Settings section:

  • Debug Level
  • Monitors
  • Debug Tool
  • Dynamic Logging
  • Put Delay in Method
  • Generate Exception in Method
  • Custom Configuration
Debug Level

A debug level is a set of log levels for debug log categories, such as Database, Workflow, and Validation. A trace flag includes a debug level, a start time, an end time, and a log type.

In this section, you can enable/disable trace level configuration for various BCI features. To perform settings, click the Debug level tab. The debug level capturing settings section is displayed as shown in Figure 112.

There are the following configurations:

  • Debug Log Level: To specify the level of information, which is included in debug logs, specify the debug log level (from 0 to 6). Zero being the lowest and six is the highest log level.
  • Error Log Level: Error is used to log all unhandled exceptions. Specify the error log level from 1 to 100.
  • Instrumentation Log Level: Capture BCI trace logs for instrumenting constraints. You can define the count from 0 to 11.
  • Method Monitor Log Level: Enable BCI trace level for method monitoring feature. You can define the count from 0 to 10.
  • Java GC Trace Level: You can mention from 0 to 6.

For error log capturing, you are having the following option:

  • Disable the error log capturing.
  • Enable capturing error messages by throwable object only.
  • Enable capturing error messages by throwable object and error logs.
Monitor Settings

This section is used to specify whether to monitor business transactions and integration points. Here, you can enable/disable ND graph monitors. For settings, go to the Monitors tab. The Monitors Settings section is displayed as shown in Figure 113.

Figure 113: Monitors Setting Window

You can enable/disable monitors for business transactions (using the Monitor Business Transactions check box) and integration points (using the Backend Monitor check box). You can also enable/disable the Java GC Monitor check box.

Put Delay in Method (for advanced users only)

Using this option, you can add delay in any specified method using instrumentation. For settings, click the Put delay in method tab. The corresponding section is displayed in Figure 114.

Figure 114: Put Delay in Method Window

In this section, you can provide the following configurations:

  • Fully Qualified Method Name: Provide a fully qualified method name. The method name should be valid.
    • Rule 1: Method name can include package, class, and method name separated by dot (.).
    • Rule 2: Method name cannot include whitespaces.
  • Delay in Method: Specify the delay in methods by providing a range in milliseconds.
Generate exception in Method (for advanced users only)

Here, you can enable/disable exception generation in certain methods. For settings, click the Generate exception tab. A section is displayed to perform settings for exception generation in methods as shown in Figure 115

Figure 115: Generate Exception in Method Window

Specify the details in the following fields:

  • Fully Qualified Method Name: Provide a fully qualified method name. The method name should be valid.
  • Exception Type: Select an Exception Type from dropdown.
  • Exception Name: Provide the name of Exception.
  • Percentage (%): Exception occurrence ratio in methods (%).

Click the Save button.

Note: To enter the valid method name we have to keep the following points in mind:

  1. Method name can include package, class, and method name separated by dot(.).
  2. Method name cannot include whitespaces.
Custom Configuration

Here, you can view the list of custom configurations and can add a new one. This configuration can be enabled via GUI. For settings, go to the Custom configurations tab. Custom configuration list is displayed with details, such as name, value, description, and status (enabled/disabled).

Figure 116: Custom Configuration Window

To add a new custom configuration, click the Add button . A new window is displayed in Figure 117.

Figure 117: Add Custom Configuration Window

Specify the name from the list, its value, and description. Click the Save button to save the details.

Debug Tool

Here, you can do settings such as capture outside transactions and socket trace. For settings, click the Debug Tool tab. A window is displayed where you can do the following settings as in Figure 118:

Figure 118: Debug Tool Window
  • Capture calls for outside transaction(s): Some transactions that are missed by the agent do not get captured. Now, you can detect any callouts that might be occurring outside the normal business transaction.
  • Enable capture socket trace: This option enables you to print the stack trace in the BCI error logs. The default number of stack traces that can be dumped is 100.
Dynamic Logging

The dynamic logging feature will allow users to add tracepoints on any line number of a method in the application, third party, and core java library.

Figure 119: Dynamic Logging

Configuration of Trace Point will allow capturing the following data method argument:

  • Local Variables
  • Class member variables
  • Method returns value
  • Capture stack trace
  • Add logs in application log files (or agent log file)
  • Write logs to the console

Product Integration Settings

In this section, you can integrate NetDiagnostics with NetVision and NetForest. To get into this setting, go to the Product Integration Settings section.

Figure 120: Product Integration Settings Window
UX-Monitor Sessions

A section is displayed where you can integrate ND with other Cavisson products.

Figure 121: UX-Monitor Session Window

Specify the cookie name, domain name, idle time, and maximum flowpath in session count. Apart from this, you can also perform the following operations:

  • Enable cookie at method entry when the method starts its execution in a transaction.
  • Enable cookie at method exit when the status code is defined in integer value.
  • Enable cookie on response commit event when the bulk of response are initiated from the server side.
  • Enable X CavNV header it is the Custom Header used for generating CavNV Cookies[Custom].
  • ND session cookie name: Cookies are small items of data, each consisting of a name and a value for ND Sessions.
  • Domain name: It is the name of the website i.e., the address where user accesses the website.
  • Idle timeout(ms): Default time to set NV cookies.
  • Maximum flowpath in session count: Number of transaction that get hit during execution of an application.
UX Auto Inject

Overview

For Real User Monitoring, the NV agent needs to be injected into web pages of client applications fetched from the web server. At present, the NV agent is injected into required web pages by manually modifying the source code of pages of client applications.

However, in some environments, it was not possible to inject NV agent manually. For such environments, an ND agent (running with the client application) can inject the NV agent automatically by identifying all required pages or transactions where the NV agent needs to be injected based on configuration.

Configuration

Following configurations are introduced to auto inject NV agent into web pages of client application using Java agent:

  1. Configure auto injection policy rules – Policy rules are used to identify requests or transaction for injecting NV agent by configuring one or more fields of the transaction.
  2. Auto injection configuration rules – Detailed configuration of NV agent to be injected in response body.
  3. Enable Auto Injection of NV Agent – Enable or disable the auto injection feature.
Injecting NV Agent using Java Agent

This section covers Auto injection policy rules and Auto injection configuration rules. Follow the below mentioned steps for using the UX Auto inject feature:

  1. Login to a ND machine and navigate to the Configurations > Agent Config Then, go to Profile (Java) > Product Integration Settings > UX-Auto Inject link.
Figure 122: Product Integration Settings Window
  1. This displays the UX-Auto Inject section.
Figure 123: UX-Auto Inject Window

Auto Injection Policy Rules

Policy rules are used for filtering Http requests or transactions for injecting NV agent tags. NV agent tag will be injected into all filtered requests or transactions based on policy rules configured. You can configure one or more policy rules and they will be applied in sequence on all requests or transactions. If any one or the policy rule is matched, then the NV agent will be injected into the response body of the selected transaction. If no policy rule is matched, then NV agent will not be injected.

  1. Click the  button on the table header of the policy rules to configure Auto Injection rule. This displays the Add Auto Injection Rule window as shown in Figure 124.
Figure 124: Add Auto Inject Rule Window

2. Provide the following details:

  • Rule Name: Specify the name of the rule as a string. For example: AutoInjectRule. To enable the rule, turn on the Enabled toggle button. It is a mandatory field.
  • BT Name: Specify the business transaction name where the NV agent is to be injected. For example: search, addToCart.
  • Exclude: Upon clicking the Exclude check box, the Policy rule will be excluded for injecting NV agent.
  • HTTP URL: Specify Http URL of the request. For example: /testconnection.html.
  • HTTP Method: Specify the Http method of request. For example: PUT, GET, POST.
  • Extension/Type: Specify the extension of the Http request URL. For example, html,. jsp, .js etc.
  • Parameter Name/Value: Specify Http request query parameter name and its value. Only one query parameter name/value is allowed.
  • Header Name/Value: Specify Http header name and its value. Only one http header name/value is allowed.
  • Operations: Following operations are supported on Http query parameter and header name fields:

EQUALS            equals              (can be applied on type 1 <String or Object>)

NOT_EQUALS  not equals       (can be applied on type 1 <String or Object>)

CONTAINS       contains           (can be applied on type 1 <String or Object>)

STARTS_WITH starts_with      (can be applied on type 1 <String or Object>)

ENDS_WITH    ends_with       (can be applied on type 1 <String or Object>)          

 

Auto Injection Configuration Rules

Auto-injection policy rule is used to configure details of the NV agent to be injected like NV agent tag, Html tab name where NV agent tag will be injected etc.

  1. Click the button on the table header of the Auto Injection Configuration Rule list to configure Auto Injection. This displays the Add Auto Injection Configuration Rule window as shown in Figure 125.
Figure 125: Auto Inject Configuration Rule Window

2. Provide the following details:

  • Rule Name: Specify the name of the rule as a string. For example: NVAgentRule. It is a mandatory field.
  • HTML Tag: Name of the HTML Tag of web page where NV agent tag (JS Script Tag) needs to be injected. For example: Title, Header etc. It is a mandatory field.
  • Before/After: Inject NV agent before or after specified Html Tag.
  • JavaScript Code: Actual NV agent tag (JS Script Tag) which will be injected into the web page of the client application. It is a mandatory field.

For example: <script src=//ip/nv/directory/nv_bootstrap.js type=“text/javascript”></script>.

After configuring both rules, click the Save button on the table header to save the configuration in the file system.

 

Enable Auto Injection

3. Upon selecting the Auto Injection NV Tag checkbox and specifying the content type –

  • text/html
  • text/plain
  • text/javascript

4. The configuration for auto-injection will be applied to the controller. After the test run restart, the configuration will be pushed on selected instances/servers.

Figure 126: Auto Inject Window

Flow Diagram

Figure 127: Flow Diagram
  1. When you send a request from the browser for the login page, it gets hit to the application server.
  2. Java agent within the Application server injects NV agent with the request.
  3. Application Server provides a response to NV tag within the browser as dynamic HTML with NV agent injected.
  4. Then, the browser with the NV tag connects to the NV server.
  5. NV tag sends captured data, such as session, pages, etc. to the NV server.
  6. When you open the NV UI in the browser, you can view the sessions, pages etc.
  7. You can further drill down to captured data, such as sessions, pages, etc. from NV server.

Appendix: Auto Injection Sample Screens

Html page of sample application in which NV agent is injected.

Figure 128: HTML Page
Injection of NV agent tag in Html source code

<script src=//172.24.0.202/nv/demo/nv_bootstrap.js type=”text/javascript”></script>

Figure 129: NV Agent Tag in HTML Source Code
NV Home Page
Figure 130: NV Home Page
NV Captured Sessions list
Figure 131: Session List Window

Drill-down to Captured Session

Navigation Timing
Figure 132: Navigation Timing Window
User Action
Figure 133: User Action

Log Monitoring Settings

In this section, you can integrate NetDiagnostics with NetForest.

Figure 134: Log Monitor Setting Window

Log Monitoring Settings is enhanced by adding Topology and Flowpath information in access and application logs. You can perform the following actions:

  1. Enable ND agent to transfer captured to configured NF server: The user can Enable ND agent to transfer captured to configured NF server by providing the Host, Port, and URL.
  2. Interval in Min to flush captured log messages to socket (NF server):  Specify the minimum interval to flush captured log messages to socket (NF server). The default value is 300000 milliseconds.
  3. Setting of different buffer parameters used for storing logs before sending to the NF server.
  4. Specify the Buffer Count and Buffer Size, which are the parameters used for storing logs before sending to the NF server. The default Buffer Count is 50 and the default Buffer Size is 100000 bytes.
  5. Enable ND and NF integration by intercepting logs and injecting ND header into log messages.
  6. Users can select the check box to Enable ND and NF integration by identifying the dumped logs and injecting the ND header into log messages.
  7. Enable MDC log message: To enable MDC log message.

Note: Click Save to save the settings. you can also use the options Reset to Default and Reset.

Application

Overview

An application is a program designed to perform a specific function. Application contains topology, which is a combination of tier, server, and instances. Using the Configure button, you can add, edit, and delete an application. In this section, we are describing how to create/edit/delete an application, how to generate configuration files, and how to view/edit topology.  

Create an application

To create an application, follow the below-mentioned steps:

  1. On the Agent Config window, click the Configure button within the Application List section or click the Applications button on the left pane of the Agent Config Home page.
Figure 135: Application List Window
  1. This displays a list of all applications with the details, such as name, topology applied, user name, last updated date and time, NDS settings, and description as shown in Figure 136.
Figure 136: Application List Details
  1. Click the button to add a new application detail. A window is displayed to add a new application as shown in Figure 137.
Figure 137: New Application Window
  1. Enter the application name, its description, user name, and attach a topology from the drop-down list. This adds the application in the list and displays in the Application Details
  2. You can configure the ND Controller settings by clicking the NDC Settings icon corresponding to an application. This displays the NDC Collector Settings window with various sections, such as ND Collector and ND Data processor.

ND Collector

A you can configure the following details/perform the following actions using this section:

  • Duration (secs) for which ND Collector continues to receive data from the machine agent after the test is over.
  • Duration (secs) for which ND Collector waits for events from machine agents on control connection.
  • Duration (secs) between two heartbeat messages to application agent
  • Accept or reject new connection from application agent when a connection already exists from that agent.
  • Retry Count for sending signal.
  • Duration (secs) after which the ND Collector forcefully stops the ND Processor process after the test is over.
  • Enable dumping of aggregate data in raw_data directory.
  • Stack trace Compression buffer initial allocated size.
  • Threshold (mins.) reuse instance id.
  • NDC BCI response time for metadata (in seconds).
  • Send an active instance response.
  • Modify entry in the topology in case of auto-scaling.
  • ND Collector wait time (secs) to send a response to NetStorm/GUI.
  • ND Collector behavior on error conditions.
  • Duration (secs) after which Instrumentation starts a request to the application agent’s times out.
  • Maximum depth of method call stack.
  • ND Collector waits time for the thread to exit after sending a signal for the exit.
  • Control size (bytes) of the stack trace file.
  • Threshold (ms) of difference between ND Collector timestamp and Application agent timestamp.
  • Enable Monitor log.
  • NDC log BCI aggregate raw data ex.
  • FP Stats monitor.
  • NDC maximum control connection.
  • Send Response to Agent on Data Connection.
Figure 138: ND Collector Settings Window
  • Enable Auto Cleanup of Topology and can specify the settings for cleanup topology after every provided duration (HH:MM: SS).
  • Configure the ND Collector logging level– or this, provide log level value (0-4), log file max size, Redirect to path, and data format.
  • Configure the duration (HH:MM: SS) of inactivity after which an instance is marked inactive. The default value is 10 minutes.
  • Configure Number of bits for flowpath mask. For this, provide NDE ID along with timestamp and App ID along with sequence number.
  • Enable Auto Cleanup for Invalid Servers and can specify the settings for cleanup of invalid servers after every provided duration (HH:MM: SS).
  • Configure settings to block a server. For this, provide the Connect disconnect duration (default value is 60 seconds) and Server block duration (default value is 1800 seconds). Also provide the Threshold count to block servers (default value is 3).
  • Configure Delay in copy profiles. You can select various options of copying profiles inside a test run. These are ‘Do not Copy Profiles’, ‘Copy profiles’, and ‘Copy profiles in thread mode’.
  • In the third option ‘Copy profiles in thread mode’, it is done by a separate thread that delays the number of seconds in copy. The default time is 60 seconds.
  • Configure Delay in Capturing of ND Data. This enables you to delay the ‘start instrumentation’ process so that the ND agent does not start capturing data. The default value is 60 seconds.
Percentile Metric for Business Transaction (BT) and Integration Point (IP) Response Time

Percentile metric for BT and IP response time lets you configure and analyze response times (based on the percentile values). For example, you can analyze the 80th Percentile of response time for ‘AddToBag’ Business Transaction. You may configure alerts on these metrics such as ‘Generate alert when 99th percentile for a BT is above the threshold of 10 seconds for the last 15 minutes.

Figure 139: Enable Auto Cleanup
  • Select the tier name from the list.
  • Specify whether to include/exclude the data. In the case of ‘include’, specify the time format and duration.
  • Click Add.

Note: You can enable Percentile Metrics at Instance level by selecting the Enable Percentile Metrics at Instance level check box. Specify which Percentile Metrics to be enabled. You can provide a maximum of 5 percentile metrics.

ND Data Processor

You can configure the following details/perform the following actions using this section:

  • Time (in ms) to poll if the test run is currently running.
  • Filter Flowpath which are not part of NS initiated transaction.
  • Initial max concurrent flow paths processed per JVM.
  • Maximum size (in kilobytes) of buffer of metadata table entries.
  • Maximum size (in kilobytes) of buffer of HTTP header metadata buffer size.
  • Maximum size (in kilobytes) of buffer of exception data buffer size.
  • Maximum size (in kilobytes) of buffer of flowpath table entries.
  • Maximum size (in kilobytes) of buffer of memory allocation table entries.
  • Maximum size (in kilobytes) of buffer of NDSQLRecord table entries.
  • Timeout (in seconds) for flushing the buffered flowpath and other tables.
  • Interval (in seconds) between two consecutive hunts for any in-memory dead flowpaths.
  • Flowpath instance in the mapping record.
  • Flag to lower the priority of the process ndu_process_data.
  • Disable the dumping of captured HTTP body.
  • Initial size (in bytes) of sequence blob compression buffer.
  • Enable dumping URL record.
  • Time out (in seconds) for retrying the recovery of meta data entries from the database.
  • Flag to enable dumping of SQL timing in CSV.
  • Generate URL record if mapping record is not received from BCI.
  • Size (in bytes) of raw data to be processed at a time in NDP per instance.
  • Minimum response time to filter level 1 flowpath.
  • Meta data recovery.
  • Maximum SQL index.
  • Set maximum number of entry and exit records in a Flowpath.
  • Filter Flowpath which are not the part of current test run.
  • Flag to enable dumping of BCI arguments data in CSV.
  • Incremental number of concurrent flowpath.
  • Maximum size (in kilobytes) of buffer of BCI arguments (JSP page names).
  • Maximum size (in kilobytes) of buffer of HTTP header capture buffer size.
  • Maximum size (in kilobytes) of buffer of flowpath table entries.
  • Maximum entries in the buffer of flowpath table entries.
  • Maximum size (in kilobytes) of buffer of NDSQL table entries.
  • Size (in MB) of the ND debug log.
  • NDP (in seconds) to mark a flowpath dead.
  • Time (in ms) before polling the raw_data file for new incoming raw_data.
  • Maximum number of method entry records in a flowpath.
  • Maximum size (in kilobytes) of buffer of JMS table entries.
  • Minimum size (in bytes) of sequence blob that qualifies it to be written in sqb file.
  • Maximum size (in kilobytes) of buffer of sqb table entries.
  • Maximum time (in seconds) before data is uploaded to DB.
  • Start to force smallest ID in SQL (meta data) table.
  • Flag to enable dumping of SQL record in CSV.
  • Free flowpath minimum sequence blob size (in bytes).
  • Flag to enable generation of FP signatures in NDP.
  • NDP binary format for method timing.
  • Enable/Disable the memory dump method to store HTTP header records.
  • Maximum number of concurrent flowpath instances.
Figure 140: Enable File Content Catching

Apart from this, you can enable DB calls by NoSQL and can decide whether sequence blob strings will be written to a separate file.

Figure 141: Enable DB Call by NoSQL

Edit an application

Here, you can edit the application details. To edit an application, select the corresponding application and click the Edit Application button .

Figure 142: Edit Application Window

A window is displayed to edit the application as shown in Figure 142. Select the topology from the list and describe the application. Once the details are edited, click the Save button. The details are updated in the list.

Delete an application

To delete an application, select the corresponding application and click the Delete Application button  . The application is deleted from the list.

View/Edit Topology of Application

In this section, you can view the topology (Tier > Server > Instance) and can edit if required.

To do this, follow the below mentioned steps:

  1. Click the application name from the list.
  2. The topology details are displayed, such as name, description, and profile applied.
Figure 143: Topology Application Window
  1. Expand the topology by clicking the
  2. On selecting the Show Server(s) and Instance(s) check box, you can view the server and instance of topology.
  3. You can edit the topology at any level, such as tier/server/instance and can change the profile applied by selecting it and using the Edit button .
Figure 144: Change Profile Window
  1. Click the Save button post changes. The topology is updated. The ‘default’ profile is attached by default. If profile is updated at any level, for example – Tier level, the change also reflects at lower levels i.e., server and instance level.

Start Memory Profiling

Heap profiling (memory profiling) enables you to understand the memory allocation and garbage collection behavior of your applications over time. It helps you identify method calls in the context within which most memory was allocated and combine this information with the number of allocated objects. The Survivor perspective helps you to understand the context within which your long-living objects (objects that survive multiple garbage collection cycles) are created.

To configure and start memory profiling, click the Start Memory Profiling button .

Figure 145: Start Memory Profiling

This displays the Memory Profiling Session Configuration window.

Figure 146: Memory Profiling Session

It contains two sections – General Settings and Advanced Settings. The description is provided in the subsequent sections.

General Settings

Figure 147: General Settings

Description of fields:

  • Session Name: Name of the heap profiling session.
  • Duration: Total duration of the session in minutes. Default – 30 minutes, Minimum – 5 minutes, and Maximum – 120 minutes.
  • of Top Class to Capture: Top number of classes having bigger size and count. Default – 20, Minimum – 5, and Maximum – 100.
  • Profiling Type: The options are – Object Count, Object Duration, or both.
  • Description: Description of the heap profiling session.

 

Advance Settings

Figure 148: Advanced Settings

Description of fields:

  • Frequency (in Secs): Number of sessions to be executed per minute. Low (10 sessions/minute), Medium (20 sessions/minute), or High (30 sessions/minute). You can also choose any intermediary values (sessions/minute).
  • TopNClass Find Duration (% of total session time): Time of pass 1 from the total duration (% of total session time) in seconds. Default – 30%, Minimum – 10%, Maximum – 50%.
  • Maximum number of unique allocations to track: Total stack trace during the session. Default – 1000, Minimum – 100, Maximum – 10000.
  • of Lines/Stack Trace: Depth of the stack trace. Default – 20, Minimum – 5, Maximum – 200.
  • Blacklist Classes: Classes to the instrument during instrumenting object constructor.
  • Whitelist Classes: Classes to instrument during instrumenting object constructor.

After the configuration, when you click the Start button, a new session of Memory Profiling starts. You can view all the sessions in the Memory Profiling window.

Note:

  • When any memory profiling session is started, a running icon is displayed, which denotes the session is running for Mutex lock.
  • You can delete a session by clicking the button.
Figure 149: Memory Profiling

This window displays the following details:

  • New Memory Allocation
  • Memory Leaks

New Memory Allocation

Figure 150: New Memory Allocation

Memory Leaks

Figure 151: Memory Leaks 

Start Mutex Lock

Lock profiling enables you to understand the lock contention and blocking thread behavior of your applications over time. It helps you identify method calls in the context within which most locks for resources were allocated and combine this information with the number of allocated objects.

To configure and start the mutex lock, click the Start Mutex Lock button . The Mutex Lock Profiling Session Configuration window is displayed as shown in Figure 152.

Figure 152: Mutex Lock Profiling Session Configuration Window

Provide the following configuration details:

General

  • Session Name: Name of the mutex lock profiling session.
  • Duration: Total duration of the session in minutes. Default – 30 minutes, Minimum – 5 minutes, and Maximum – 120 minutes.
  • Session Overhead: Number of sessions to be executed per minute. Low (10 sessions/minute), Medium (20 sessions/minute), or High (30 sessions/minute). You can also choose any intermediary values (sessions/minute).
  • of Top Mutex Lock to capture: Number of top mutex locks to be captured.
  • Description: Description of the mutex locks.

Advanced

  • Top N Mutex Lock Find Duration: Time of pass 1 from the total duration (% of total session time) in seconds. Default – 30%, Minimum – 10%, Maximum – 50%.
  • Total No. Mutex Lock to capture: Total number of mutex locks to analyze. Default – 20, Minimum – 5, Maximum – 1000.
  • Total No. of threads to capture: Total number of threads to analyze for mutex locks. Default – 100, Minimum – 10, Maximum – 1000.
  • Total No. of stack trace to capture: Total stack trace during the session. Default – 1000, Minimum – 100, Maximum – 10000.

After the configuration, when you click the Start button, a new session of Mutex Lock starts. You can view all the sessions in the Mutex Lock profiling window.

Note:

  • When any mutex session is started, a running icon is displayed, which denotes the session is running for the Mutex lock.
  • You can delete a session by clicking the
Figure 153: Mutex Lock Profiling Window

This window displays the following details:

  • Top Blocking Locks
  • Top Blocked Threads
  • Top Blocking Threads

Top Blocking Locks

Figure 154: Top Block Locks Window

Top Blocked Threads

Figure 155: Top Blocked Threads Window

Top Blocking Threads

Figure 156: Top Blocking Threads
Auto Discovery

Apart from Java agent, this feature supports DotNet agent too. DotNet agent detects all classes/methods loaded in the memory of DotNet application and reports them to NDE appliance. Configuration UI displays all methods discovered by Agent and allows you to select classes/methods for instrumentation by an agent.

Figure 157: Auto Discovery

Dynamic Diagnostics Auto Instrumentation (DDAI)

Auto-Instrumentation features auto-detects instrumentation profiles of relevant methods. It works on the below algorithm:

  1. Start an instrumentation session for some duration.
  2. Find all executing methods in active threads at regular intervals.
  3. Instrument top executing methods.
  4. Monitor methods after instrumentation for some time.
  5. If methods are cluttering the flow path without significant execution time, remove instrumentation for those methods.
  6. At the end of the instrumentation session, create an instrumentation profile as an output with relevant methods.

This whole process is time consuming, as it has to take in-memory thread dump at regular intervals and find out all methods in active threads. During this session, CPU consumption is also high.

Note: To tackle this problem, Dynamic Diagnostics auto instrumentation is implemented. It is a lightweight solution for finding problems in business transactions. Dynamic Diagnostics instrumentation is triggered only on specific Business transactions, and stack dump is considered only for those threads, which are executing that transaction.

Using Dynamic Diagnostics

Follow the below mentioned steps for using dynamic diagnostics:

  1. Go to Applications > Topology Details, navigate to a particular instance, and click the Start button within the Actions
Figure 158: Instance Action
  1. This displays the Auto Instrumentation Configuration Select the Dynamic Diagnostics option as shown in Figure 159.
Figure 159: Dynamic Diagnostics
  1. Select the Business Transaction for instrumentation.
Figure 160: Business Transaction
  1. Provide various other details that are required for the configuration of Auto instrumentation.
Figure 161: Advanced Setting –Dynamic Diagnostics

Details:

  • Session Name: Name of the session, which is automatically named, based on the business transaction selected. You can edit the business transaction.
  • Session Duration: Specify the duration of the session for running.
  • Completion Mode: This is the action, which has to be taken regarding downloading the instrumentation files, once the instrumentation is completed. There are the following options:
    • No Download: No files are downloaded.
    • Download files after session: Files are downloaded after the session is completed.
    • Download and apply: Files are downloaded and applied for instance.
  • Apply Mode: There are following options within this section:
    • Apply on Instance: Instrumentation is applied on instance without saving the file.
    • Apply on Instance and Save: Instrumentation is applied on the instance and the file is saved.
  • Advance Settings: There are following options within this section:
    • Maximum stack depth to identify idle threads: In auto instrumentation, application agents will ignore the idle threads, which have stack depth less than the provided value.
    • Sample interval.
    • Trace level.
    • Number of thread samples to instrument methods.
    • Percentage of executing methods in thread sample(s) to be instrumented.
    • Percentage of executing methods in flowpath to be un-instrumented.
    • Maximum method(s) to be considered for Auto Instrumentation: Maximum unique methods without overloading which will be considered in the auto instrumentation process.
    • Minimum average execution time of method for Instrumentation (in ms): Methods will be un-instrumented if average execution time of the methods is less than the provided value.
    • Weightage of methods in stack traces having Exception/Integration point calls: All the methods having stack traces in exceptions and integration point calls will have more weightage for auto instrumentation.
    • Concurrent Auto Instrumentation threshold: Maximum number of active BT serving threads for DD AI session.
    • Dump data
    • Thread blacklist filter: Provided thread names are excluded in the DD AI session.
    • Thread whitelist filter: Provided thread names are included in the DD AI session.
    • Blacklist filter: Provided BT names are excluded in the DD AI session.
    • Whitelist filter: Provided BT names are included in the DD AI session.
    • Remove Auto Instrumentation session changes after its completion: Un-instrument all methods, which are considered for auto-instrumentation only after auto-instrumentation session completion.
    • Delete from server: Deletion of file from server.
  1. Click the Start
  2. This starts the auto-instrumentation and a pop-up message is displayed.
Figure 162: Auto Instrumentation-Pop up
  1. To view the active instrumentations, navigate to the Instrumentation Finder icon from the left panel.
  2. This shows the active auto instrumentation, with details, such as instance name, session name, start time, duration, expected end time, elapsed time, and operation.
Figure 163: Active Auto Instrumentation
  1. You can view the status of auto instrumentation by clicking the refresh icon within the operation section.
  2. Once it reaches the specified session time, the auto instrumentation is completed and the record disappears from the active auto instrumentation list. A message is displayed for its successful completion.
  3. The record is displayed in the auto instrumented list.
  4. To view the summary of the auto instrumentation, click the Summary icon within the Operation
  5. This displays auto instrumentation summary with details, such as package, class, method, count, and duration.
  6. To download the details, click the Download icon . A pop-up message is displayed for the successful download of the file.
  7. You can delete an instrumentation record from the list by clicking the Delete icon .
  8. To edit the instrumentation and further perform other operations, click the Edit icon .
Figure 164: Auto Instrumentation Icon

Here, you can perform the following operations:

  • Instrument Agents
  • Uninstrument Agents
  • Applying Method Monitor for a Profile
  • Applying Method BT for a Profile
  1. Instrument Agents: In the left panel, there is a drop-down that lists all the loaded agents’ data, by clicking on any one of them lists down all the data regarding their agents into the tree structure. To add agent(s) from the left tree to the instrument list, select the agent(s) and click the Instrument
  2. Uninstrument Agents: To move an agent from the instrument list to the un-instrument list, select the agent and click the Uninstrument
  3. Applying Method Monitor for a Profile: This feature is used for creating the Method Monitors from Auto Discover or Auto Instrumentation Earlier, to add a method monitor to a profile, you needed to navigate to the Method Monitor screen and manually add the method monitors by providing FQM, which is a time-consuming task and involves high probabilities of wrong entries from the user side.

The new approach is more reliable as you just require to select the package, class, and method and the profile where to apply this method monitor. At a time, method monitor is applied only for single FQM.

Upon selecting a method and clicking the Method Monitor button, you are prompted to select the profile to which method monitor is to be applied.

Figure 165: Select Profile Window

Once the profile is selected and the Save button is clicked, the selected method monitor is added to the specified profile.

  1. Applying Method BT for a Profile: This is similar to applying method monitor for a profile. Here, you just require to select the fully qualified method from the left tree and the profile where to apply this method BT.

Upon selecting a fully qualified method and clicking the Method BT button, you are prompted to select the profile to which method BT is to be applied.

Figure 166: Select Profile Drop-Down Window

On clicking the Save button, the Add Business Transaction Method Rule dialog box is displayed.

Figure 167: Add Business Transaction Method Rule Window

This displays the fully qualified method name. You can add a business transaction method rule based on return type, argument, or method invocation. 

  1. BT Rule Based on Return Type: Here, provide the BT name, match criteria, and match value.
Figure 168: BT Method Rule
  1. BT Rule Based on Argument: Here, specify the argument index (from the drop-down list) for BT rule. Arguments are splitted by semicolons.
Figure 169: BT Based on Argument
  1. BT Rule Based on Method Invocation: Here, specify the method invocation index (from the drop-down list) for the BT rule. Here, 0 can be passed if no arguments are there.
Figure 170: BT Rule Based on Method Return

Note: The save can be seen on the Business Transaction > Split by Method Execution list.

Instrumentation Profile Maker

Instrumentation profile maker is a utility provided in ND Config UI, which is used to make instrumentation profiles in XML format. Currently, this is supported for Java and NodeJS agents only. It just takes inputs as a list of FQMs in a .txt file and instruments them in XML format.

To use this, go to ND Config home page and click the Instrumentation Profile Maker icon  on the left pane. The Instrumentation Profile Maker section is displayed on the right pane.

Figure 171: Instrument Profile Maker

Import XML File

To import the file from the file system, click the Browse button. A window is displayed from where you can browse the file and upload it for its conversion to an XML file. The raw file should contain fully qualified method names and should be with .txt extension. You can also search for a file using the search option.

Figure 172: File Manager Window

Once the selection is done, click the Upload button, the file gets imported, added to the list, and the converted XML is displayed in the panel.

Figure 173: Instrumentation Profile Maker Window

View XML File Content

To view XML content of a file, select it from the drop-down list and click the View button.

Figure 174: Viewing XML File

Create Instrumentation Profile

To create an instrumentation profile, follow the below mentioned steps:

  1. Click the Create
  2. Right click over the text All and click the Add Package The Add Package window is displayed as shown in Figure 175.
Figure 175: Add Package
  1. Enter the package name and click the OK The package is added to the instrumentation profile.
  2. Now, right-click over the package name and click the Add Class The Add Class window is displayed. (To delete the package, click the Delete Package option).
  3. Enter the class name, and click OK. The class is added within the specified package.
Figure 176: Add Class Window
  1. Add a method within the class. To do this, right-click over the class name and click the Add Method (To delete the class, click the Delete Class option).
  2. Enter the method name and click the OK The method is added within the specified class. To delete a method, right-click over the method name and click the Delete Method option.
Figure 177: Create XML
  1. Specify the file name with which the instrumentation profile file is to be saved and click the Save The file is saved successfully.

Edit an Instrumentation Profile File

Once created, you can edit an instrumentation profile for adding more packages/classes/methods. This can also be used for deleting the same. To do this, select the instrumentation profile file from the drop-down list and click the Edit button. The instrumentation profile is displayed in edit mode. Navigate to the particular element (package/class/method) and perform the required operation (add/delete). Below is a sample illustration after adding another method stop () V at the method level within the Thread class.

Figure 178: Edit

Delete an Instrumentation Profile File

You can delete an instrumentation profile by first selecting the instrumentation profile and then clicking the Delete button.

Clear XML File Content

To clear the XML file content of an instrumentation profile, select the file from the drop-down list and click the Clear button, the content of the file is cleared and nothing is displayed in the content area.

Figure 179: Instrumentation Profile Maker Dialog Box

Instrumentation Profile Details

By clicking the Details button, it displays all the information about the selected instrumentation profile applied on the profiles, which are connected to the topology or any other level.

Figure 180: Instrumentation Profile Details Dialog Box
  • If any instrumentation profile, that you are editing, is not used in any profile, then you can delete or edit the instrumentation profile.
  • Below screenshot is displayed if any instrumentation profile is applied to profile and you are saving the instrumentation profile at run time.
Figure 181: Instrumentation Profile Maker Window

If you click the “Yes” button, then the instrumentation profile is saved and an RTC request will be sent to each level (Topology, Tier, Server, and Instance) where the instrumentation profile is used in profile.

Below screenshot is for the RTC information.

Figure 182: Confirmation Dialog Box

Instrumentation profile applied to the profile will not be deleted until you unlink the instrumentation profile from the profile.

Below screenshot will be shown to you for the same.

Figure 183: Confirmation Dialog Box

Instrumentation Finder

This section is divided into two sub-sections:

  • Auto Instrument
  • Auto Discover

Auto Instrumentation

It supports auto-instrumentation of important methods (Application/Core API/Third party) taking time in execution. This feature eliminates the need to manually create the instrumentation profile with packages/classes/methods of application. Auto instrumentation can be started on the server using configuration UI by invoking a new session called Auto Instrumentation Session.

Start Auto instrumentation

Go to Home > Application > Topology details, and click the start within the Actions section.

Figure 184:Topology Details

This displays the Auto Instrumentation Configuration dialog box where you can configure various details:

Figure 185: Auto Instrumentation Dialog Box

Provide the following details:

  • Session Name: It is the name of AI Session. Output of the AI Session will be filed. It will be named after this Session name.
  • Session Duration: Specify the duration of the session for running.
  • Minimum stack depth to identify idle threads: In Auto Instrumentation, application agents will ignore idle threads, which have stack depth less than the provided value.
  • Auto instrumentation Debug level: AI Feature logging trace level. It can have values in the range of 0 to 3.
  • Number of thread samples to instrument methods: In every cycle of provided thread sample count, important method(s) will be instrumented.
  • Percentage of executing methods in thread samples to be instrumented: Percentage of methods that will be instrumented from a list of all considered methods.
  • Percentage of executing methods in flow paths to be uninstrumented: Percentage of methods that will be un-instrumented if their response time is very small.
  • Maximum method(s) to be considered for Auto Instrumentation: Maximum unique method(s) without overloading which will be considered in the Auto Instrumentation process.
  • Maximum average execution time of method for Instrumentation (in ms): Methods will be un-instrumented if average execution time of the method less than the provided value.
  • Weightage of methods in stack traces having Exception/Integration point calls: All methods in stack traces having exception and integration point calls will have more weightage for Auto Instrumentation.
  • Remove Auto Instrumentation session changes after its completion: Un-instrument all methods, which are considered for Auto Instrumentation only after Auto Instrumentation session completion.
  • Apply Blacklist Auto instrumentation filter: Negative Filter for packages and classes for any AI Session. Packages and classes given on the blacklist will not participate in the AI Session.

Once the configuration is done, click the Start button to start the instrumentation. The record is listed in the table.

Figure 186: Record Listed

To view the summary of the auto instrumentation, click the Summary icon . To download the instrumentation profile, click the  icon. To find out the instrumented list, click the icon within the operation section. This displays the Instrumentation Finder window.

Figure 187: Instrumentation Finder

Here, you can find the instrumented and un-instrumented methods based on the configuration. You can manually perform instrumentation/un-instrumentation of methods using the Instrument/Uninstrument buttons respectively. To save the details, click the Save button.

Auto Discover

Auto Discover feature is used to discover loaded packages, classes, methods, and modules of the selected application instance.

To use this feature, click the Instrumentation Finder icon  on the left panel, a window is displayed where you can discover the settings based on the provided inputs. Click the Auto Discover tab.

Figure 188: Auto Discovery Window

Below is the description of each field displayed in this window:

  • Agent Type: Type of agent for instrumentation.
  • Connected Agent(s): List of all connected agents with the combination of Tier, Server, and instance key to show in the drop down list.
  • Discover by filter: Auto discovery only for the specified classes and methods.
  • Discover All: Auto discovery for all packages, classes, and methods.
  • Class Filter: Class Filter should be fully qualified class name (example – com. oracle. pitchfork.interfaces.inject.injectioninfo)or its regex (example – com.ora*)
  • Method Filter: Method filter should be only the method name (example – getvalue () |) or its regex. (example – get. *).

In addition to that, ND Config UI provides an interface to create and update the instrumentation profiles.

To do this, select the Auto discovered instance from the drop-down list and click the Open button. Below is the screen prototype for showing all the packages, classes, and methods in a tree structure.

Figure 189: Auto Discovery Window
  • In the left panel, there is a drop-down listing all the loaded agent’s data, by clicking on any one of them lists down all the data regarding their agents into the tree structure.
  • All the packages, classes and methods are displayed in the hierarchical structure by selecting a particular node and clicking on the Instrument button.
  • After selecting all the instrumented methods from the right panel, provide the instrumentation profile name and click the Save button to save the instrumentation profile.
  • Clicking the Save button converts all the selected nodes into an XML file which you can use for instrumentation purposes.
Figure 190: Uninstrument Selection

Applying Method Monitor for a Profile

This feature is used for creating the Method Monitors from Auto Discover or Auto Instrumentation screen.

Earlier, to add a method monitor to a profile, you needed to navigate to the Method Monitor screen and manually add the method monitors by providing FQM, which is a time-consuming task and involves high probabilities of wrong entries from your side.

The new approach is more reliable as you just require to select the package, class, and method and the profile where to apply this method monitor.

Upon selecting a method and clicking the Method Monitor button, you are prompted to select the profile to which the method monitor is to be applied.

Figure 191: Select Profile Dialog Box

Once the profile is selected and the Save button is clicked, the selected method monitor is added to the specified profile.

Figure 192: Method Monitor Window 

User Configured Settings

This feature is used to configure settings for NetDiagnostics Collector (NDC) and NetDiagnostics Processor (NDP), which are not supported by UI. Whenever a new NDC / NDP setting is supported from the User Configured Settings section, it can be configured from the Custom Configuration screen.

To configure

  1. Add a keyword for agent.
  2. Add a keyword for NDC.
  3. Configure an agent keyword in the profile.
  4. Configure NDC keyword.

For user configured settings, click the User Configured Settings icon from the left menu. This displays a window where you can configure new settings for agent and NDC.

Figure 193: User Configuration Setting Window

Configure Agent Settings

To configure the Agent settings, click the Agent Settings Tab. Settings added from this screen can be configured from the Custom Configuration screen in Advance settings.

Follow the below mentioned steps to configure the agent setting and view them in the custom configuration screen.

  1. Within the Agent Settings tab, click the Add Settings This displays the Add Settings dialog box.
Figure 194: Add Settings Window

2. Provide the following details:

  • Name: Settings name, should be different from already supported settings, otherwise an error message will be displayed.
  • Agent: Agent settings can be of three types: Java, DotNet, NodeJS.
  • Type: Settings can be of type: Integer, String, Char, Double, Long, and File.
  • Default Value: Each setting must have a default value.
  • Min & Max Value: Optional in case of Integer/Double/Long.
  • Description: Describes the setting to be supported (Optional).

3. Once the details are provided, click the Save

4. This adds the specified agent setting in the list and a confirmation message is displayed for getting it saved successfully. All user-configured settings will be shown in UI with their default value and supported agent(s). Specific agents will show only those settings which come under supported agents.

Figure 195: User Configuration Agent Setting Window

Note: You can edit /delete this setting by clicking the /  icons respectively. If the setting to be deleted is configured in any application, you will not be able to delete it.

  1. To apply this setting, navigate to a profile and click the Custom Configuration This displays the Custom Configuration window.
  2. Click the Add button, a dialog box is displayed where you can select the newly configured settings and apply to the profile.
Figure 196: Add Custom Configuration Window

Note: In the ‘ndExceptionFilterList’ configuration, you can provide comma separated exceptions.

Configure NDC Settings

To configure NDC settings, click the NDC Settings tab. To add NDC custom settings, all the steps used are the same as they are for Agent Settings. Settings added from this screen can be configured from the Custom Configuration screen in NDC UI within an Application.

Follow the below mentioned steps to configure the agent setting and view them in the custom configuration screen.

  1. Within the NDC Settings tab, click the Add Settings This displays the Add Settings dialog box.
Figure 197: Add Settings Window
  1. Provide the following details:
  • Name: Settings name, should be different from already supported settings, otherwise an error message will be displayed.
  • Type: Type can be NDC/NDP.
  • Default value: Every setting must have a default value.
  • Min and Max Value: Optional.
  • Description: To describe the setting to be configured.
  1. Once the details are provided, click the Save
Figure 198: User Configuration NDC Setting Window
  1. This adds the specified NDC setting in the list and a confirmation message is displayed for getting it saved successfully. All user-configured settings will be shown in UI with their default value and supported agent(s). Specific agents will show only those settings which come under supported agents.

Note: You can edit/delete this setting by clicking the /  icons respectively. If the setting to be deleted is configured in any application, then you will not be able to delete it.

  1. To apply this setting, navigate to the application on which this setting is to be applied. To do this, click the Application menu and then click the corresponding ND Server Settings
Figure 199: Topology List Window
  1. Then, click the Custom Configuration
Figure 200: Custom Configuration Window
  1. Click the Add button, a dialog box is displayed where you can select the newly configured settings and apply in the profile.
Figure 201: Add Configuration Custom Window

Settings

With this feature, you can configure the RTC time out value globally. This value will be applied while communicating between GUI->NDC. To do that, click the Settings tab in the User Configured Settings section.

Figure 202: Settings Window

The default value of RTC Time Out is 60 seconds. When you apply the RTC changes by Profile or by Application, the configured value is set.

Key Highlights

For AGENT,

  • Settings can be added for any of the three agents (Java, NodeJS, DotNet).
  • Type of Setting (Char, Long, Double, Integer, String, File).

For NDC,

  • NDC Settings can be of two types NDC or NDP.
  • Min and Max values are optional in this case.

For Both,

  • Only one setting can be deleted at a time.
  • If the setting to be deleted is configured in any profile/application, you will not be able to delete it.
  • Same settings cannot be configured multiple times.

NDE Cluster Configuration

This feature helps you to do the cluster configuration in NDE. You can add an NDE server and set NDE routing rules. To use this feature, click the NDE Cluster Configuration  button on the left panel. The NDE Cluster Configuration window is displayed.

Figure 203: NDE Cluster Configuration Window

This configuration has two sections – Add NDE Server and NDE Routing Rules.

Add NDE Server

To add an NDE server, click the Add NDE  button and provide the following details:

Figure 204: Add NDE Server Window
  • Server Name: Type the name of the NDE server.
  • Master: Select this check box to make this a master server.
  • IP: Type the IP address of the NDE server.
  • Port: Type the TCP port of ND Collector (NDC).
  • Advance Settings
    • WS Port: Type the Web Socket port of ND Collector (NDC).
    • WSS Port: Type the Web socket secure port of ND Collector (NDC).

Click Save to add the server.

Once a server is added, you can click the Edit    button to edit the NDE server or click the Delete  button to delete the NDE server.

NDE Routing Rules

You can set NDE Routing Rules after adding an NDE server. To add the routing rules for an NDE server, click the Add NDE Routing Rules  button and provide the following details:

Figure 205: Add NDE Routing Rule Dialog Box
  • NDE Server: Select the available NDE server from the drop-down list.
  • Tier Group(s): Name of the group that contains multiple tiers. Same configuration is applied to all tiers of the group.

Click Save to add the NDE Routing Rule.

Once a rule is added, you can click the edit icon to edit the NDE Routing Rule or click the delete button to delete the NDE Routing Rule.

Download Agent Logs

This feature helps you to download any type of file located at the server. You can also view the downloaded file. To use this feature, click the Download Agent logs button on the left panel. The Download Agent Logs window is displayed.

Figure 206: Download Agent Log Window

Provide the following information that is displayed in this window:

  • Tier/Server/Instance: A list of connected tier/serve/instance. You can use the search option in the drop-down list to select the required tier/server/instance.
  • Agent Type: It is the type of agent on which files are to be downloaded.
  • File Type: It is a drop-down list of pre-defined and custom paths, such as Logs, Scripts, and Custom. Selecting ‘Logs’ displays logs within the ND_HOME directory. Selecting ‘Scripts’ displays scripts within the ND_HOME directory. Selecting ‘Custom’ prompts you to provide the customized source path.
  • Advance Settings: To download Agent files, some parameters are required by NDC. You can expand the advanced settings to view these parameters.
Figure 207: Advance Setting Window
  • Timeout: This is the time (in minutes) after which the system stops waiting for the response. Its default value is 10 minutes.
  • Compressed Mode: If you select this, the file is downloaded in compressed mode. By default, the file is downloaded in non-compressed mode.
  • Execute Forcefully: If you select this, request is processed forcefully, and priority is provided for its execution as compared to those in which this option is not selected.

Clicking Reset sets all the fields with their default values and also refreshes the connected instances list in case any instance goes Active/Inactive.

Click Show Files to display a list of files (at the provided Tier > Server > Instance path) with size on the right panel.

You can also search for the file name, file size, and its modification time. The ‘File Size’ and ‘Modification Time’ columns can be sorted. You can also use the Download and View option. By clicking this button, you can download the selected file with the provided name and destination, and also view the file content on the bottom panel.

Audit Log

This section is used to view the logs of the changes performed in the configuration. To view the Audit logs, click the Audit Log button  on the left panel. The Audit log window is displayed.

Figure 208: Audit Log Window

This window displays following information:

  • Timestamp: Time at which the changes were performed.
  • Action: Section at which the changes were performed.
  • User Name: Logged in user name.
  • Description: A brief description of the changes performed.

Note: You can perform search operations over the records and can perform page navigations too in this section.

Tier Assignment Rule

This feature is used to configure tier names based on rules (such as Pattern of Server Name, Server List, and Server IP range). After clicking the Tier Assignment Rule option, the tier assignment rule window is displayed.

Figure 209: Tier Assignment Rule Dialog box

For configuring the Tier assignment rules, select the topology first.

Based on the rule type, if you have configured List in the Rule Type, then all the servers are listed in the selected topology.

Figure 210: Tier Assignment Rule Window

Details

  • Rule Name – It should be a text field where you can describe the tier.
  • Rule Type – It should be a drop-down field where you can select the type of rule. There are three types of rules:
    • Pattern – Pattern of the server name.
    • List – List of server names listed from Server.conf file.
    • IP Range – Range of server IP and subnet mask.
  • Rule Definition – It is the definition of a rule that depends on the Rule Type.
  • You can provide the custom Server name by selecting the ‘Add Custom Server Name’
  • If you have configured Pattern in the Rule Type, then you need to specify the pattern.
Figure 211: Rule Definition
  • If you have configured the IP Range in the Rule type, provide the IP and subnet mask.
Figure 212: Subnet Mask

Note: This feature resolves the manual configuration of tier name in cmon.env or agent argument while setting up the machine agent and application agent in the auto-registration process.

 Details

  • Tier Name – It is a drop-down field where you can select the tier name defined in the Tier.conf file under the selected topology name. You can also add a custom tier in the text field after enabling the checkbox ‘Add Custom Server Name’.

Note – Tier name should be unique. If you try to configure the already configured tier, then a toaster notification should display ‘Tier name already exists’. At a time only one tier name should be configured from either a predefined tier name drop-down field or a custom add tier name text field.

  • Apply Always – This is used to enable/disable.
    • Enabled means Always apply rule.
    • Disabled means Apply rule if no tier name is sent by BCI.